#include<stdio.h>

//⼆维数组传参的本质
// 方法一:使用数组
//void test(int arr[3][5], int x, int y)
//{
//	int i = 0;
//	for (i = 0; i < 3; i++) {
//		int j = 0;
//		for (j = 0; j < 5; j++) {
//			printf("%d ", arr[i][j]);
//		}
//		printf("\n");
//	}
//}

//方法二：使用指针
//void test(int (*p)[5], int x, int y)
//{
//	int i = 0;
//	for (i = 0; i < 3; i++) {
//		int j = 0;
//		for (j = 0; j < 5; j++) {
//			printf("%d ", *(*(p + i) + j));
//		}
//		printf("\n");
//	}
//}
//
//int main()
//{
//	int arr[3][5] = { {1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7} };
//	test(arr, 3, 5);
//	return 0;
//}


// 函数指针变量 int(*) (int x, int y)
//int add(int x, int y)
//{
//	return x + y;
//}
//
//int main()
//{
//	int ret = add(4, 5);
//	printf("%d\n", ret);
//	return 0;
//}

//int add(int x, int y)
//{
//	return x + y;
//}
//
//int main()
//{
//	int (*p)(int, int) = add;
//	int ret = (*p)(4, 5);
//	printf("%d", ret);
//	return 0;
//}